/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package control;

//import BancoDados.BancoDeDados;
import model.beans.Paciente;
//import POO.TecladoUtils;
//import java.io.IOException;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import model.persistence.GerenciadorEntidades;

/**
 *
 * @author kelyane
 */
public class GerenciadorPaciente {

    public static void cadastrarPaciente(Paciente paciente){
        EntityManager em = GerenciadorEntidades.getEntityManager();
        em.getTransaction().begin();
        em.persist(paciente);        
        em.getTransaction().commit();
    }
    
  /*  public static Paciente obtemPaciente() throws IOException{
        System.out.println("CPF Paciente");
        String cpf = TecladoUtils.lerString();
        
        Paciente paciente = buscarPaciente(cpf);
        
        if(paciente == null){
            System.out.printf("Paciente não existe.\n");            
        }
        
        return paciente;
    }*/
    
    public static void alterarPaciente(Paciente paciente){
        EntityManager em = GerenciadorEntidades.getEntityManager();
        em.getTransaction().begin();
        Paciente p1 = em.getReference(Paciente.class, paciente.getId());
        Paciente p2 = em.merge(p1);        
        em.getTransaction().commit();
    }
    
    public static Paciente buscarPaciente(String numCPF){
        
        EntityManager em = GerenciadorEntidades.getEntityManager();
        
        Query query = em.createNamedQuery("findAllPacienteCPF"); 
        query.setParameter(numCPF, em);        
        List<Paciente> pacienteNameQuery = query.getResultList();
        
        for(Paciente paciente : pacienteNameQuery ){
            System.out.println("Nome paciente: " + paciente.getNome() 
                    + " RG: " + paciente.getRg().getRG()
                    + " CPF: " + paciente.getCpf().getCPF());            
            return paciente;
        }
           
       
        return  null;
    }

    public static void removePaciente(Paciente paciente) {
        EntityManager em = GerenciadorEntidades.getEntityManager();
        em.getTransaction().begin();
        em.remove(em.getReference(Paciente.class, paciente.getId()));
        em.getTransaction().commit();
    }

    
}
